草庐IT

Java Swing:扩展 TreeNode

全部标签

c# - 如何从保存文件对话框中获取文件扩展名?

我希望能够根据在保存文件对话框中输入的扩展名来保存图像。我发现只需输入例如“JPG”当然不会导致Save方法使用这种格式。解析扩展然后使用例如切换和设置正确的格式对我来说听起来有点尴尬。还是没有更好的办法? 最佳答案 可以得到SaveDialog.FileName中指定的文件名然后用Path.GetExtension()或类似的,您可以获得将用作扩展名的字符串。之后的操作取决于您的具体应用程序设计,如果您保存的是文本文件,您也可以将其命名为image1.png,但它仍然是一个文本文件。如果您在内存中有一个图像对象并希望根据所选扩展名

c# - 扩展 C# 语法的想法

不幸的是,C#不允许额外的用户定义语法。但我想知道是否有可能通过利用visualstudioonbuild-event来超越这个限制。假设我有一些语法糖可以很容易地转换成实际的C#代码。如果我在构建C#项目之前自动将包含此新语法的cs文档转换为有效的cs文档,则该项目可以成功构建。总的来说,这就像我扩展了C#语言一样,因为我从一个包含非官方语法的无效cs文档开始,但它仍然编译了。我意识到这有一些问题,比如这个翻译是永久性的。这也许可以通过恢复原始cs来避免(调试结束后应恢复,否则某些IDE功能将丢失)。但这些都是次要问题。请让我知道您对这个想法的看法。这可能吗?如果可以,有人可以指导我

c# - 如何仅扩展 Treeview 的一级子级

默认情况下,我想在TreeView上显示第一级的所有子项。然后展开点击对象的所有子项。 最佳答案 尝试:foreach(TreeNodetnintreeView1.Nodes){tn.Expand();}在运行时添加节点时,您可以只检查级别并在需要时进行扩展:privatevoidShouldAutoExpand(TreeNodetn){if(tn.Level==0)tn.Expand();}没有NodeAdded事件可以自动检查。您必须自己决定是否应“默认”展开节点。更新:从您的评论来看,您似乎想要展开所有级别0的节点,但是当您展

c# - 在扩展方法中保存状态

C#团队之前考虑过向C#添加扩展属性、事件等。埃里克·利珀特:http://blogs.msdn.com/b/ericlippert/archive/2009/10/05/why-no-extension-properties.aspx但是,要使这些功能有用,它们必须能够使用对象存储某种新的状态。看起来唯一的方法是使用字典并将对象的每个实例与附加状态相关联。如果可以通过创建我自己的字典(也许还有获取/设置扩展方法)“手动”复制此功能,那将会很有用。但是,为了将对象的特定实例与某种状态相关联,您需要对对象的实际引用进行哈希处理。在另一种语言中,您可以通过散列其内存位置来实现这一点,但在C

c# - 如何使用额外属性扩展类

假设我有一个名为Foo的类。我无法更改Foo类,但我不想使用string类型的名为Bar的属性来扩展它。此外,我还有很多类,例如Foo,所以我对“通用”解决方案很感兴趣。我正在研究ExpandoObject,dynamic,它给了我想要的结果,但我想知道它可以在不使用的情况下完成动态...staticvoidMain(string[]args){varfoo=newFoo(){Thing="this"};varfooplus=Merge(foo,new{Bar="andthat"});Console.Write(string.Concat(fooplus.Thing,fooplus.B

c# - Unity 的自定义对象工厂扩展

我正在使用UnityIoC容器,我需要拦截对特定基础接口(interface)的任何Resolve调用,并运行我自己的自定义代码来构造这些类型。换句话说,在下面的示例代码中,当我调用container.Resolve()时,如果它没有具体实现类型的实例,它会调用MyFactoryFunction构造一个,否则我希望它返回缓存的副本。标准的Unity容器无法构造这些对象(更新:因为它们是.NET远程对象,所以具体类不存在于本地计算机上的任何程序集中),我不想预先创建它们并使用RegisterInstance存储它们。interfaceIFoo:IBase{...}interfaceIFo

c# - Visual Studio 中的 .deploy 扩展名是什么

当我使用VisualStudio发布我的软件时,它会生成.deploy扩展名。例如。我的程序.exe.deploy它是什么?它是做什么用的 最佳答案 当您发布ClickOnce应用程序时,它会在部署站点上的所有文件上附加“.deploy”。这样做的原因是许多人部署到网络服务器,这使他们不必为部署中包含的每种文件类型设置MIME类型。在客户端计算机上安装部署时,它会从文件中删除.deploy。 关于c#-VisualStudio中的.deploy扩展名是什么,我们在StackOverflo

c# - 扩展方法 - 装饰者模式

我想知道我们是否可以将扩展方法视为C#中装饰器模式的实现?因为目标是一样的,但是实现的逻辑和概念可能不同?谢谢! 最佳答案 装饰器模式通常与独立于其他实例向类型的特定实例添加行为相关联。在扩展方法的情况下,它会影响在同一范围内编译的类型的所有实例。我认为它不是装饰器模式的一部分。 关于c#-扩展方法-装饰者模式,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/15211385/

c# - 获取任何枚举值的扩展方法

我一直在尝试创建一个扩展方法,该方法适用于任何枚举,以返回其值。而不是这样做:Enum.GetValues(typeof(BiasCode)).Cast()这样做会很好:newBiasCode().Values()如果没有new会更好,但那是另一个问题。我有一个.NETfiddle有一个接近的解决方案(代码如下所示)。此代码的问题在于扩展方法返回List.我想让它返回枚举值本身的列表。返回List并不可怕;这只是意味着我必须转换结果。这有可能吗?我尝试使扩展方法通用,但遇到了问题。这是我所能得到的最接近的结果:usingSystem;usingSystem.Linq;usingSyst

c# - 如何在 Mac OSX 中运行扩展名为 .exe 的 C# 桌面应用程序?

我安装了MonoFramework并且我有myproject.exe文件。如何在MacOSX中运行扩展名为.exe的C#桌面应用程序? 最佳答案 您应该使用以下命令行:monomy_cool_program.exe 关于c#-如何在MacOSX中运行扩展名为.exe的C#桌面应用程序?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/3385652/